#include "ScnsLcd.c.h"

#if defined(SCNS_LCD_ENABLE)&&SCNS_LCD_ENABLE==1

#include "ScnsSt7789.h"
#include "ScnsSt7735.h"

#if defined(SCNS_ST7789_ENABLE)&&SCNS_ST7789_ENABLE==1
const ScnsBspLcdPhysicalDevicePosition scnsBspLcdPhysicalDevicePosition[SCNS_BSP_LCD_PHYSICAL_DEVICE_MAX]={
    {.x=0,.y=0,.fullScreen=0},
};
ScnsStatus scnsBspLcdInit(void)
{
    if(scnsSt7789Init(SCNS_ST7789_1)!=SCNS_STATUS_OK)
        return SCNS_STATUS_BSP_FAILED;
    return SCNS_STATUS_OK;
}
ScnsStatus scnsBspLcdPostInit(void)
{
    return SCNS_STATUS_OK;
}
Point scnsBspLcdGetBorder(uint8 pD)
{
    return scnsSt7789GetBorder(SCNS_ST7789_1);
}

void scnsBspLcdSetBackgroundLight(ScnsLcdBackgroundLightStatus status)
{
    scnsSt7789SetBackgroundLight(SCNS_ST7789_1,status);
}
ScnsStatus scnsBspLcdCacheFlush(uint8 Pd,Point plu,Point prd,ScnsLcdColor*buf,uint32 n)
{
    scnsSt7789Flush(SCNS_ST7789_1,plu,prd,buf,n);
}

ScnsStatus scnsBspLcdSetAddress(Point plu,Point prd)
{
    return scnsSt7789SetAddress(SCNS_ST7789_1,plu,prd);
}

void scnsBspLcdWriteColor(ScnsLcdColor color)
{
    scnsSt7789WriteColorRGB565(SCNS_ST7789_1,color);
}
#endif

ScnsStatus scnsBspLcdFill(ScnsLcdColor*src,int16 jmp,int16 w,int16 h,ScnsLcdColor color,uint8 merge)
{
    return SCNS_STATUS_NOT_SUPPORT;
}

ScnsStatus scnsBspLcdDisplayArrayImage(ScnsLcdColor*src,int16 srcJmp,int16 disW,int16 disH,const void*p,ScnsColorFormat format,const ScnsColorArgb8888*cult,int16 pJmp,int16 w,int16 h,uint8 merge)
{
    return SCNS_STATUS_NOT_SUPPORT;
}
#endif
